| автор перевода - Штрек - flash-club.ru | Предыдущая | Следующая | Оглавление |
Flash Player 5.
~ expression
expression Число.
32-битное целое число.
Оператор (побитовый); также известен как оператор изменения знака числа или
поразрядный оператор изменения знака числа. Конвертируетexpression
в 32-битное целое беззнаковое число, затем вычитает 1 и изменяет знак числа
. Это когда каждый бит из 0 устанавливается в 1 и каждый бит из 1 устанавливается
в 0. В результате получается 32-битное целое число.
Для примера, шестнадцатеричное 0x7777 представляется как бинарное число:
0111011101110111
побитовое НЕТ для этого числа, ~0x7777, есть бинарное число :
1000100010001000
Как шестнадцатеричное, это 0x8888. Следовательно, ~0x7777 есть 0x8888.
Обычно оператор ~ (побитовое НЕТ) используется для представления флага бита (булевое значение в одном бите).
Числа с плавающей точкой преобразуются в целые числа, путём отбрасывания всех цифр после точки. Положительные целые числа конвертируются в шестнадцатеричные с максимальным значением 4294967295 или 0xFFFFFFFF; числа со значением большим чем максимум, после конвертации, отбрасывают "лишние цифры". Отрицательные числа конвертируется в шестнадцатеричные с минимальным значением -2147483648 или 0x800000000; числа со значением меньшим чем минимум, после конвертации, отбрасывают "лишние цифры".
Возвращаемое значение интерпретируется как два инвертированных числа со значением в интервале от -2147483648 до 2147483647.
Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .
Следующий пример демонстрирует использование ~ (побитовое НЕТ) с флагом битов :
var ReadOnlyFlag:Number = 0x0001; // определяем бит 0 как только читаемый флаг var flags:Number = 0; trace(flags); /* Чтобы установить только читаемый флаг в переменной флагов, следующий код использует побитовое ИЛИ: */ flags |= ReadOnlyFlag; trace(flags); /* Чтобы очистить только читаемый флаг в переменной флагов, сначала создаётся маска, используя побитовое НЕ для переменной ReadOnlyFlag. В маске, каждый бит - 1, если это не только читаемый флаг. Когда используется побитовое И с маской, очищается только читаемый флаг. Следующий код создаёт маску и выполняет побитовое И: */ flags &= ~ReadOnlyFlag; trace(flags); /* выводится: 0 1 0 */
& (побитовое И), &=
(присваивание побитового И), ^
(побитовое исключающее ИЛИ), ^=
(побитовое исключающее ИЛИ с присвоением), |
(побитовое ИЛИ), |= (присваивание
побитового ИЛИ)
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |